import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox, QVBoxLayout, QFormLayout, QLineEdit

'''
每个窗口定义一个类，MyClass、ResultClass
1、文件全局型窗口在main里定义个全局的list1=[],结果窗口ResultClass可多次append出多个窗口
2、类依赖型窗口，先MyClass构建函数中定义个类全局变量self.rc = ''，新窗口self.rc = ResultClass(self.letel.text())
3、窗口间参数传递，在类参数中
'''
class ResultClass(QWidget):  # QMainWindow 对布局QHBoxLayout类无效
    def __init__(self, tel):
        super().__init__()
        self.tel = tel
        self.initUI()

    def initUI(self):
        self.setWindowTitle('显示结果')
        self.setGeometry(600, 270, 300, 200)
        lbltest = QLabel('手机号码:'+self.tel, self)

        self.show()

class MyClass(QWidget):  # QMainWindow 对布局QHBoxLayout类无效
    def __init__(self):
        super().__init__()
        self.rc = ''
        self.initUI()

    def initUI(self):
        self.setWindowTitle('刘金玉编程教程')
        self.setWindowIcon(QIcon('./img/msn.ico'))
        self.setGeometry(800, 370, 400, 300)

        lblwelcome = QLabel('欢迎使用注册系统')
        vlo = QVBoxLayout(self)
        vlo.addWidget(lblwelcome, 0, Qt.AlignHCenter)  # 设置对方方式 居中
        vlo.setAlignment(Qt.AlignTop)

        frm1 = QFormLayout(self)  # 表单布局类自动适应大小，可以直接规划2列，使用addrow方法可以直接一次性加入标签及输入框
        lb1tel = QLabel('手机号码:', self)
        self.letel = QLineEdit(self)
        frm1.addRow(lb1tel, self.letel)

        lb1pwd = QLabel('密码:', self)
        lepwd = QLineEdit(self)
        lepwd.setEchoMode(QLineEdit.Password)
        frm1.addRow(lb1pwd, lepwd)

        vlo.addLayout(frm1)

        btn1 = QPushButton("注册")
        btn1.clicked.connect(self.btn1_click)
        vlo.addWidget(btn1)

        self.show()

    def btn1_click(self):
        self.rc = ResultClass(self.letel.text())    # 只有一个窗口
        # rc2 = ResultClass(self.letel.text())
        # list1.append(rc2)  # 没次增加一个窗口


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myf = MyClass()
    # list1 = []  # 多子窗口 全局文件型
    app.exec_()
